package edu.pe.cayetano.model.bo;

import org.apache.commons.beanutils.DynaBean;

import ws.synopsis.frmwrk.common.BResult;
import edu.pe.cayetano.dao.DiagnosticoPresuntivoDAO;
import edu.pe.cayetano.dao.HistoriaClinicaDetalleDAO;
import edu.pe.cayetano.framework.BusinessException;
import edu.pe.cayetano.seccd.constantes.ConstantesSECCD;
import edu.pe.cayetano.util.Utilitario;

public class DiagnosticoPresuntivoBO extends BaseBO{
	
	public BResult buscarDiagnosticoPresuntivoEspecifico(DynaBean dyna) throws BusinessException{
		BResult 					retSalida		= null;
		try{
			conectar();
			DiagnosticoPresuntivoDAO diangosticoDAO	 	= new DiagnosticoPresuntivoDAO(conn);
			retSalida 		= diangosticoDAO.buscarDiagnosticoPresuntivoEspecifica(Utilitario.getPropertyDynaBean(dyna, "codigo"));
		}catch(Exception e){
			retSalida = new BResult();
			retSalida.setCode(-1);
			retSalida.setMessage("[DiagnosticoPresuntivolBO] error en metodo buscarDiagnosticoPresuntivoEspecifico generado por:"+e.getMessage());
		}finally{
			try{
				desconectar();
			}catch(Exception e){
				retSalida = new BResult();
				retSalida.setCode(-1);
				retSalida.setMessage("[DiagnosticoPresuntivolBO] error en metodo buscarDiagnosticoPresuntivoEspecifico generador po:"+e.getMessage());
			}
		}
		return retSalida;
	}

	public BResult buscarDiagnosticoPresuntivoEspecifico(String codigo) throws BusinessException{
		BResult 					retSalida		= null;
		try{
			conectar();
			DiagnosticoPresuntivoDAO diangosticoDAO	 	= new DiagnosticoPresuntivoDAO(conn);
			retSalida 		= diangosticoDAO.buscarDiagnosticoPresuntivoEspecifica(codigo);
		}catch(Exception e){
			retSalida = new BResult();
			retSalida.setCode(-1);
			retSalida.setMessage("[DiagnosticoPresuntivolBO] error en metodo buscarDiagnosticoPresuntivoEspecifico generado por:"+e.getMessage());
		}finally{
			try{
				desconectar();
			}catch(Exception e){
				retSalida = new BResult();
				retSalida.setCode(-1);
				retSalida.setMessage("[DiagnosticoPresuntivolBO] error en metodo buscarDiagnosticoPresuntivoEspecifico generador po:"+e.getMessage());
			}
		}
		return retSalida;
	}
	
	public BResult insertaDiagnosticoPresuntivoArchivoHC(DynaBean dyna) throws BusinessException{
		BResult 				retSalida				= null;
		try{
			conectar();
			DiagnosticoPresuntivoDAO diagnosticoDAO	 	= new DiagnosticoPresuntivoDAO(conn);
			retSalida 	= diagnosticoDAO.insertaDiagnosticoPresuntivoArchivoHC(dyna);
			if(retSalida.getCode()==0){
				HistoriaClinicaDetalleDAO historiaDAO	 	= new HistoriaClinicaDetalleDAO(conn);
				retSalida 	= historiaDAO.actualizaExisteHistoriaDetalle(dyna,ConstantesSECCD.EXISTE_DIAPRE);
				grabar();
			}
		}catch(Exception e){
			try {
				deshacer();
			} catch (Exception e2) {
				throw new BusinessException(e.getMessage(), e2);
			}
			retSalida = new BResult();
			retSalida.setCode(-1);
			retSalida.setMessage("[DiagnosticoPresuntivoBO] error en metodo insertaDiagnosticoPresuntivoArchivoHC generado por:"+e.getMessage());
		}finally{
			try{
				desconectar();
			}catch(Exception e){
				retSalida = new BResult();
				retSalida.setCode(-1);
				retSalida.setMessage("[DiagnosticoPresuntivoBO] error en metodo insertaDiagnosticoPresuntivoArchivoHC generador po:"+e.getMessage());
			}
		}
		return retSalida;
	}
	
	public BResult editaDiagnosticoPresuntivoArchivoHC(DynaBean dyna) throws BusinessException{
		BResult 				retSalida				= null;
		try{
			conectar();
			DiagnosticoPresuntivoDAO diagnosticoDAO	 	= new DiagnosticoPresuntivoDAO(conn);
			retSalida 	= diagnosticoDAO.editaDiagnosticoPresuntivoArchivoHC(dyna);
			grabar();
		}catch(Exception e){
			try {
				deshacer();
			} catch (Exception e2) {
				throw new BusinessException(e.getMessage(), e2);
			}
			retSalida = new BResult();
			retSalida.setCode(-1);
			retSalida.setMessage("[DiagnosticoPresuntivoBO] error en metodo editaDiagnosticoPresuntivoArchivoHC generado por:"+e.getMessage());
		}finally{
			try{
				desconectar();
			}catch(Exception e){
				retSalida = new BResult();
				retSalida.setCode(-1);
				retSalida.setMessage("[DiagnosticoPresuntivoBO] error en metodo editaDiagnosticoPresuntivoArchivoHC generador po:"+e.getMessage());
			}
		}
		return retSalida;
	}
	
	public BResult editaDiagnosticoPresuntivoArchivoHCxMedico(DynaBean dyna) throws BusinessException{
		BResult 				retSalida				= null;
		try{
			conectar();
			DiagnosticoPresuntivoDAO diagnosticoDAO	 	= new DiagnosticoPresuntivoDAO(conn);
			retSalida 	= diagnosticoDAO.editaDiagnosticoPresuntivoArchivoHCxMedico(dyna);
			grabar();
		}catch(Exception e){
			try {
				deshacer();
			} catch (Exception e2) {
				throw new BusinessException(e.getMessage(), e2);
			}
			retSalida = new BResult();
			retSalida.setCode(-1);
			retSalida.setMessage("[DiagnosticoPresuntivoBO] error en metodo editaDiagnosticoPresuntivoArchivoHCxMedico generado por:"+e.getMessage());
		}finally{
			try{
				desconectar();
			}catch(Exception e){
				retSalida = new BResult();
				retSalida.setCode(-1);
				retSalida.setMessage("[DiagnosticoPresuntivoBO] error en metodo editaDiagnosticoPresuntivoArchivoHCxMedico generador po:"+e.getMessage());
			}
		}
		return retSalida;
	}
}
